<?php

$bolGDesdeAjax = true;
require_once(dirname(__FILE__) . "/../index.php");

require_once(BaseConfig::LoadClass('vars.class.php'                ));
require_once(BaseConfig::LoadClass('sesion.class.php'              ));
require_once(BaseConfig::LoadClass('template.class.php'            ));
require_once(BaseConfig::LoadClass('usuario.class.php'             ));
require_once(BaseConfig::LoadClass('configuracion.class.php'       ));
require_once(BaseConfig::LoadClass('permiso.class.php'             ));
require_once(BaseConfig::LoadClass('menu.class.php'                ));
require_once(BaseConfig::LoadClass('pagina.class.php'              ));
require_once(BaseConfig::LoadClass('menu_lateral.class.php'        ));
require_once(BaseConfig::LoadClass('cotizacion.class.php'          ));
require_once(BaseConfig::LoadClass('datos_cotizacion.class.php'    ));
require_once(BaseConfig::LoadClass('cotizador_qualitas.class.php'  ));
require_once(BaseConfig::LoadClass('estados.class.php'             ));
require_once(BaseConfig::LoadClass('cotizacion_qualitas.class.php' ));

require_once(BaseConfig::LoadClass('sitio.class.php'               ));
require_once(BaseConfig::LoadClass('sitio_local.class.php'         )); // Sitio_local debe ir despues de sitio Y de pagina

$oConfiguracion = new Config    ();
$oTemplate      = new Template  ();
$oSesion        = new Sesion    ();
$oSitio         = new SitioLocal();
$strPagina      = '';

switch(Variables::GetPageOption()) {
  case 'CambioMarca':
    $strPagina = "<option value=''>:: SELECCIONE ::</option>" . Variables::GetSelectByTable("cat_anios_modelo", "DISTINCT(anio)", "anio"  , "", "", "", "WHERE id_marca = " . (Variables::GetOption('id_marca') - 0) . " AND anio >= " . (date("Y") - 19) . " ORDER BY anio DESC");
    break;
  case 'CambioAnioMarca':
    $strPagina = "<option value=''>:: SELECCIONE ::</option>" . Variables::GetSelectByTable("cat_modelos_sisa", "id_sisa"       , "nombre", "", "", "", "WHERE id_marca = " . (Variables::GetOption('id_marca') - 0) . " AND anio = " . (Variables::GetOption('anio') - 0) . " ORDER BY nombre ASC");
    break;
  case 'CambioCP1':
    $strCP = sprintf("%05d", Variables::GetOption('codigo_postal') - 0);
    $oConecta    = new Conecta();
    $strConsulta = "SELECT DISTINCT(A.id_estado), B.nombre FROM cat_colonias AS A JOIN cat_estados AS B ON A.id_estado = B.id_estado WHERE A.nombre LIKE '%$strCP'";
    $oConecta->Consulta($strConsulta);
    if($oConecta->EOF) {
      die("Error: no se encuentra el codigo postal " . Variables::GetOption('codigo_postal'));
    }
    $intIdEdo    = $oConecta->Field('id_estado');
    
    $strConsulta = "SELECT id_estado, nombre FROM cat_estados ORDER BY nombre ASC";
    $arrDatos    = Variables::GetArrayByQuery($strConsulta, "id_estado", "nombre");
    $strPagina   = Variables::GetSelectByArray($arrDatos, $intIdEdo);
    break;
  case 'CambioCP2':
    $oConecta    = new Conecta();
    $strConsulta = "SELECT * FROM cat_colonias WHERE nombre LIKE '%" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('codigo_postal')) . "' AND id_estado = " . Variables::GetOption('id_estado');
    $oConecta->Consulta($strConsulta);
    $intIdMun    = $oConecta->Field('id_municipio');
    $intIdCol    = $oConecta->Field('id_colonia'  );
    
    $strConsulta = "SELECT id_colonia, nombre FROM cat_colonias WHERE id_estado = " . Variables::GetOption('id_estado') . " AND id_municipio = $intIdMun ORDER BY nombre ASC";
    $arrDatos    = Variables::GetArrayByQuery($strConsulta, "id_colonia", "nombre");
    $strPagina   = Variables::GetSelectByArray($arrDatos, $intIdCol);
    break;
  case 'CambioCP3':
    $oConecta    = new Conecta();
    $strConsulta = "SELECT A.id_municipio, B.nombre FROM cat_colonias AS A JOIN cat_municipios AS B ON A.id_municipio = B.id_municipio AND A.id_estado = B.id_estado WHERE A.nombre LIKE '%" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('codigo_postal')) . "' AND A.id_estado = " . Variables::GetOption('id_estado') . " AND A.id_colonia = " . Variables::GetOption('id_colonia');
    $oConecta->Consulta($strConsulta);
    $intIdMun    = $oConecta->Field('id_municipio');
    
    $strConsulta = "SELECT A.id_municipio, B.nombre FROM cat_colonias AS A JOIN cat_municipios AS B ON A.id_municipio = B.id_municipio AND A.id_estado = B.id_estado WHERE A.id_estado = " . Variables::GetOption('id_estado');
    $arrDatos    = Variables::GetArrayByQuery($strConsulta, "id_municipio", "nombre");
    $strPagina   = Variables::GetSelectByArray($arrDatos, $intIdMun);
    break;
  
  case 'CambioEdo1':
    $strConsulta  = "";
    $strConsulta .= "SELECT id_municipio, nombre ";
    $strConsulta .= "FROM cat_municipios ";
    $strConsulta .= "WHERE id_estado = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_estado')) . "'";
    $arrDatos     = Variables::GetArrayByQuery($strConsulta, "id_municipio", "nombre");
    $strPagina    = Variables::GetSelectByArray($arrDatos);
    break;
  case 'CambioEdo2':
    $strConsulta  = "";
    $strConsulta .= "SELECT id_colonia, nombre ";
    $strConsulta .= "FROM cat_colonias ";
    $strConsulta .= "WHERE id_estado    = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_estado'   )) . "' ";
    $strConsulta .= "  AND id_municipio = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_municipio')) . "' ";
    $arrDatos     = Variables::GetArrayByQuery($strConsulta, "id_colonia", "nombre");
    $strPagina    = Variables::GetSelectByArray($arrDatos);
    break;
  case 'CambioEdo3':
    $strConsulta  = "";
    $strConsulta .= "SELECT id_colonia, nombre ";
    $strConsulta .= "FROM cat_colonias ";
    $strConsulta .= "WHERE id_estado    = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_estado'   )) . "' ";
    $strConsulta .= "  AND id_municipio = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_municipio')) . "' ";
    $strConsulta .= "  AND id_colonia   = '" . OperacionesDB::CambioValoresNoPosiblesDB(Variables::GetOption('id_colonia'  )) . "' ";
    $arrDatos     = Variables::GetArrayByQuery($strConsulta, "id_colonia", "nombre");
    $strDCP       = trim(substr(trim($arrDatos[Variables::GetOption('id_colonia')]), -5));
//    $strPagina    = "<option value='$strDCP'>$strDCP</option>";
    $strPagina    = $strDCP;
    break;
  
  case 'CotizacionBecaInfo':
    $oConecta    = new Conecta();
    $strConsulta = "SELECT id_cotizacion, serialized_data FROM cotizaciones WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion');
    $oConecta->Consulta($strConsulta);
    $arrDatos = unserialize($oConecta->Field('serialized_data'));
    
    if($oConecta->Field('id_cotizacion')) {
      $strRes  = "";
      $strRes .= "<table class='TablaReportes'>";
      $strRes .= "<tr>";
      $strRes .= "<th colspan='2'>Paquete: " . Variables::GetOption('tipo_cotiza') . "</th>";
      $strRes .= "</tr>";
      
      Variables::__AlternarModifier(0);
      foreach($arrDatos["Coberturas"] as $arrInfoImportes) {
        if($arrInfoImportes["sn_Paq_" . Variables::GetOption('tipo_cotiza')] == "true") {
          if(strtoupper(trim($arrInfoImportes["txt_desc_cobertura"])) == strtoupper("Equipo Especial:")) continue;
          if(strtoupper(trim($arrInfoImportes["txt_desc_cobertura"])) == strtoupper("Adaptaciones y conversiones:")) continue;
          $strRes .= "<tr " . Variables::AlternarConClase() . ">";
          $strRes .= "<td>" . $arrInfoImportes["txt_desc_cobertura"] . "</td>";
          $strRes .= "<td>SI</td>";
          $strRes .= "</tr>";
        }
      }
      
      $strRes .= "<tr><th colspan='2'><hr /></th></tr>";
      Variables::__AlternarModifier(0);
      foreach($arrDatos["Importes"] as $arrInfoImportes) {
        if(($arrInfoImportes["imp_Pq_" . Variables::GetOption('tipo_cotiza')] - 0) != 0) {
          $strRes .= "<tr " . Variables::AlternarConClase() . ">";
          $strRes .= "<td>" . $arrInfoImportes["txt_Importe"] . "</td>";
          $strRes .= "<td class='AlinearDerecha'>" . Variables::FormatoCurrency($arrInfoImportes["imp_Pq_" . Variables::GetOption('tipo_cotiza')]) . "</td>";
          $strRes .= "</tr>";
        }
      }
      
      $strRes .= "</table>";
      
      die($strRes);
    } else {
      die("No se encuentra info");
    }
    break;
  case 'CotizacionBeca':
    $oConecta    = new Conecta();
    $strConsulta = "SELECT id_cotizacion, serialized_data FROM cotizaciones WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion');
    $oConecta->Consulta($strConsulta);
    
    if($oConecta->Field('id_cotizacion')) {
      $intIdCotizaBeca = $oConecta->Field('id_cotizacion');
      
      // Checar si existe algun error: Si es asi, mandarlo
      $arrDatos = unserialize($oConecta->Field('serialized_data'));
      error_reporting(0);
      if($arrDatos["Table1"]["ErrorId"]) {
        $strPagina  = "<b>Error ({$arrDatos["Table1"]["ErrorId"]})</b><br />";
        $strPagina .= "<span style='white-space:normal'><b>{$arrDatos["Table1"]["ErrorDesc"]}</b></span>";
        die("{ \"error\":1, \"texto\":\"$strPagina\"}");
      }
    } else {
      $oDatosCot           = new DatosCotizacion(Variables::GetOption('id_dato_cotizacion'));
      $oCotizacion         = new Cotizaciones();
      $_POST["paso"      ] = 2;
      $_POST["via_ajax_2"] = 1;
      $_POST["datos"     ] = $oDatosCot->ObtenerArregloDatos();
      $intIdCotizaBeca     = $oCotizacion->GenerarCotizador();
      if($intIdCotizaBeca - 0) {
        
      } else {
        die("{ \"error\":1, \"texto\":\"$intIdCotizaBeca\"}");
      }
    }
    $strConsulta = "SELECT * FROM precios_cotiza WHERE id_cotizacion = $intIdCotizaBeca";
    $oConecta->Consulta($strConsulta);
    $intOcultarPagoDespues = 1;
    $strPagina = "{";
    while(!$oConecta->EOF) {
      $strNombre  = $oConecta->Field('nombre');
      $strPagina .= "\"{$strNombre}_precio\"      : " . $oConecta->Field('precio'       ) . ", ";
      $strPagina .= "\"{$strNombre}_primer_pago\" : " . $oConecta->Field('primer_pago'  ) . ", ";
      $strPagina .= "\"{$strNombre}_pago_despues\": " . $oConecta->Field('pagos_despues') . ", ";
      if($oConecta->Field('pagos_despues') - 0) {
        $intOcultarPagoDespues = 0;
      }
      $oConecta->MoveNext();
    }
    $strPagina .= "\"id_cot_beca\": $intIdCotizaBeca, ";
    $strPagina .= "\"OcultarPagoDespues\": $intOcultarPagoDespues ";
    $strPagina .= "}";
    
    break;
    
    
  case 'CotizacionQua':
    if(!Variables::GetOption('id_dato_cotizacion')) {
      die("{ \"error\":1, \"texto\":\"No se mando dato a cotizar (Q)\"}");
    }
    // Primero checamos si esta cotizacion ya tiene sus datos de Qualitas separados
    $oConecta    = new Conecta();
    $strConsulta = "SELECT * FROM cotizaciones_qualitas WHERE id_dato_cotizacion = " . Variables::GetOption('id_dato_cotizacion');
    $oConecta->Consulta($strConsulta);
    
    $oCotizacion = new CotizacionQualitas();
    
    if($oConecta->Field('id_cotizacion')) {
      $oCotizacion->LlenarObjeto($oConecta->GetColumn());
    } else {
      $oCotizacion->ObtenerDesdeCotNormal(Variables::GetOption('id_dato_cotizacion'));
      $oCotizacion->GuardarObjeto(true, true);
    }
/*    
    CotizadorQualitas::ParseXML($oCotizacion, '<?xml version="1.0" encoding="utf-8"?><Movimientos><Movimiento TipoMovimiento="2" NoNegocio="2795" NoPoliza="" NoCotizacion="0062596365" NoEndoso="" TipoEndoso="21" NoOTra="43575130P"><DatosAsegurado NoAsegurado=""><Nombre>CERVANTES TELLEZ JUAN LUIS</Nombre><Direccion /><Colonia /><Poblacion /><Estado>9</Estado><CodigoPostal>1388</CodigoPostal><NoEmpleado /><Agrupador /><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>1</TipoRegla><ValorRegla>1</ValorRegla></ConsideracionesAdicionalesDA><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>2</TipoRegla><ValorRegla>2</ValorRegla></ConsideracionesAdicionalesDA><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>3</TipoRegla><ValorRegla>MEXICO</ValorRegla></ConsideracionesAdicionalesDA><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>4</TipoRegla><ValorRegla>JUAN LUIS</ValorRegla></ConsideracionesAdicionalesDA><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>5</TipoRegla><ValorRegla>CERVANTES</ValorRegla></ConsideracionesAdicionalesDA><ConsideracionesAdicionalesDA NoConsideracion="40"><TipoRegla>6</TipoRegla><ValorRegla>TELLEZ</ValorRegla></ConsideracionesAdicionalesDA></DatosAsegurado><DatosVehiculo NoInciso="0001"><ClaveAmis>8337</ClaveAmis><Modelo>2007</Modelo><DescripcionVehiculo /><Uso>1</Uso><Servicio>1</Servicio><Paquete>1</Paquete><Motor /><Serie>111</Serie><Coberturas NoCobertura="1"><SumaAsegurada>80100</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0005</Deducible><Prima>5049.65</Prima></Coberturas><Coberturas NoCobertura="3"><SumaAsegurada>80100</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>00010</Deducible><Prima>259</Prima></Coberturas><Coberturas NoCobertura="4"><SumaAsegurada>3000000</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0000</Deducible><Prima>2264.4</Prima></Coberturas><Coberturas NoCobertura="5"><SumaAsegurada>375000</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0</Deducible><Prima>528.65</Prima></Coberturas><Coberturas NoCobertura="6"><SumaAsegurada>100000</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0</Deducible><Prima>70</Prima></Coberturas><Coberturas NoCobertura="7"><SumaAsegurada>3000000</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0</Deducible><Prima>360</Prima></Coberturas><Coberturas NoCobertura="14"><SumaAsegurada>8560</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0</Deducible><Prima>325</Prima></Coberturas><Coberturas NoCobertura="34"><SumaAsegurada>1200000</SumaAsegurada><TipoSuma>2</TipoSuma><Deducible>0</Deducible><Prima>0</Prima></Coberturas><Coberturas NoCobertura="47"><SumaAsegurada>3000000</SumaAsegurada><TipoSuma>15</TipoSuma><Deducible>0</Deducible><Prima>452.88</Prima></Coberturas><ConsideracionesAdicionalesDV NoConsideracion="0"><TipoRegla>0</TipoRegla><ValorRegla /></ConsideracionesAdicionalesDV></DatosVehiculo><DatosGenerales><FechaEmision>2013-10-30</FechaEmision><FechaInicio>2013-10-31</FechaInicio><FechaTermino>2014-10-31</FechaTermino><Moneda>0</Moneda><Agente>2113</Agente><FormaPago>C</FormaPago><TarifaValores>1308</TarifaValores><TarifaCuotas>1308</TarifaCuotas><TarifaDerechos>1308</TarifaDerechos><Plazo /><Agencia /><Contrato /><PorcentajeDescuento>30</PorcentajeDescuento><ConsideracionesAdicionalesDG NoConsideracion="1"><TipoRegla>1</TipoRegla><ValorRegla>9</ValorRegla></ConsideracionesAdicionalesDG><ConsideracionesAdicionalesDG NoConsideracion="4"><TipoRegla>1</TipoRegla><ValorRegla>0</ValorRegla></ConsideracionesAdicionalesDG><ConsideracionesAdicionalesDG NoConsideracion="34"><TipoRegla>2</TipoRegla><ValorRegla /></ConsideracionesAdicionalesDG></DatosGenerales><Primas><PrimaNeta>6614.21</PrimaNeta><Derecho>250</Derecho><Recargo>-132.28</Recargo><Impuesto>1077.11</Impuesto><PrimaTotal>7809.04</PrimaTotal><Comision>10</Comision></Primas><Recibos NoRecibo="1"><FechaInicio>2013-10-31</FechaInicio><FechaTermino>2014-10-31</FechaTermino><PrimaNeta>6614.21</PrimaNeta><Derecho>250</Derecho><Recargo>-132.28</Recargo><Impuesto>1077.11</Impuesto><PrimaTotal>7809.04</PrimaTotal><Comision>661.42</Comision></Recibos><CodigoError /></Movimiento></Movimientos>');
*/    
    // Ya que tenemos el objeto, checamos si ya tiene la peticion XML y la respuesta
    if($oCotizacion->strXMLEnvio) {
      // Ya tiene el envio
    } else {
      // No se ha enviado la peticion: Mandarla
      CotizadorQualitas::CotizarDesdeObjetoQualitas($oCotizacion);
      die;
    }
    
    break;
}

die($strPagina);
?>